#ifndef __OLED_I2C_H
#define __OLED_I2C_H

#include "stm32f1xx_hal.h"

#include "string.h"

extern I2C_HandleTypeDef hi2c1;
#define OLED_ADDRESS    0x78 //通过调整0R电阻,屏可以0x78和0x7A两个地址 -- 默认0x78


uint8_t OLED_Buf[1024];


//I2C初始化配置

void OLED_WR_CMD(uint8_t cmd);
void OLED_WR_DATA(unsigned char I2C_Data);

void OLED_Init(void);
void OLED_Set_Pos(uint8_t x, uint8_t y);//设置光标位置

void OLED_Clear(void);//清屏
void OLED_Display_On(void);//将OLED从休眠中唤醒
void OLED_Display_Off(void);//让OLED休眠 -- 休眠模式下,OLED功耗不到10uA
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2);

void OLED_Refresh_Gram(void);

 /**
  * @brief  OLED_ShowStr，显示codetab.h中的ASCII字符,有6*8和8*16可选择
  * @param  x,y : 起始点坐标(x:0~127, y:0~7);
    *                   ch[] :- 要显示的字符串;
    *                   TextSize : 字符大小(1:6*8 ; 2:8*16)
    * @retval 无
  */
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size);

 /**
  * @brief  OLED_ShowCN，显示codetab.h中的汉字,16*16点阵
  * @param  x,y: 起始点坐标(x:0~127, y:0~7);
    *                   N:汉字在codetab.h中的索引
    * @retval 无
  */
void OLED_ShowCN(unsigned char x, unsigned char y, unsigned char N);

 /**
  * @brief  OLED_DrawBMP，显示BMP位图
  * @param  x0,y0 :起始点坐标(x0:0~127, y0:0~7);
    *                   x1,y1 : 起点对角线(结束点)的坐标(x1:1~128,y1:1~8)
    * @retval 无
  */
void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);

#endif

